::WS::Utils::ServiceTypeDef Client FreshBookApi ExpenseDefinition {
    staff_id        {type string minOccurs 0 maxOccurs 1}
    category_id     {type string minOccurs 0 maxOccurs 1}
    project_id      {type string minOccurs 0 maxOccurs 1}
    client_id       {type string minOccurs 0 maxOccurs 1}
    amount          {type string minOccurs 0 maxOccurs 1}
    vendor          {type string minOccurs 0 maxOccurs 1}
    date            {type string minOccurs 0 maxOccurs 1}
    notes           {type string minOccurs 0 maxOccurs 1}
    status          {type string minOccurs 0 maxOccurs 1}
    tax1_name       {type string minOccurs 0 maxOccurs 1}
    tax1_percent    {type string minOccurs 0 maxOccurs 1}
    tax1_amount     {type string minOccurs 0 maxOccurs 1}
    tax2_name       {type string minOccurs 0 maxOccurs 1}
    tax2_percent    {type string minOccurs 0 maxOccurs 1}
    tax2_amount     {type string minOccurs 0 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi ExpenseUpdate {
    expense_id      {type string minOccurs 1 maxOccurs 1}
    staff_id        {type string minOccurs 0 maxOccurs 1}
    category_id     {type string minOccurs 0 maxOccurs 1}
    project_id      {type string minOccurs 0 maxOccurs 1}
    client_id       {type string minOccurs 0 maxOccurs 1}
    amount          {type string minOccurs 0 maxOccurs 1}
    vendor          {type string minOccurs 0 maxOccurs 1}
    date            {type string minOccurs 0 maxOccurs 1}
    notes           {type string minOccurs 0 maxOccurs 1}
    status          {type string minOccurs 0 maxOccurs 1}
    tax1_name       {type string minOccurs 0 maxOccurs 1}
    tax1_percent    {type string minOccurs 0 maxOccurs 1}
    tax1_amount     {type string minOccurs 0 maxOccurs 1}
    tax2_name       {type string minOccurs 0 maxOccurs 1}
    tax2_percent    {type string minOccurs 0 maxOccurs 1}
    tax2_amount     {type string minOccurs 0 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi ExpenseDetails {
    expense_id      {type string minOccurs 1 maxOccurs 1}
    staff_id        {type string minOccurs 0 maxOccurs 1}
    category_id     {type string minOccurs 0 maxOccurs 1}
    project_id      {type string minOccurs 0 maxOccurs 1}
    client_id       {type string minOccurs 0 maxOccurs 1}
    amount          {type string minOccurs 0 maxOccurs 1}
    date            {type string minOccurs 0 maxOccurs 1}
    folder          {type string minOccurs 0 maxOccurs 1}
    notes           {type string minOccurs 0 maxOccurs 1}
    vendor          {type string minOccurs 0 maxOccurs 1}
    status          {type string minOccurs 0 maxOccurs 1}
    tax1_name       {type string minOccurs 0 maxOccurs 1}
    tax1_percent    {type string minOccurs 0 maxOccurs 1}
    tax1_amount     {type string minOccurs 0 maxOccurs 1}
    tax2_name       {type string minOccurs 0 maxOccurs 1}
    tax2_percent    {type string minOccurs 0 maxOccurs 1}
    tax2_amount     {type string minOccurs 0 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi ExpenseListArray {
    expense    {type ExpenseDetails()}
}


::WS::Client::DefineRestMethod FreshBookApi expense expense.create {
    expense    {type ExpenseDefinition}
} {
    expense_id {type string}
}

::WS::Client::DefineRestMethod FreshBookApi expense expense.update {
    expense    {type ExpenseUpdate}
} {}

::WS::Client::DefineRestMethod FreshBookApi expense expense.get {
    expense_id {type string}
} {
    expense    {type ExpenseDetails}
}

::WS::Client::DefineRestMethod FreshBookApi expense expense.delete {
    expense_id {type string}
} {}

::WS::Client::DefineRestMethod FreshBookApi expense expense.list {
    client_id       {type string minOccurs 0 maxOccurs 1}
    date_from       {type date minOccurs 0 maxOccurs 1}
    uate_to         {type date minOccurs 0 maxOccurs 1}
    page            {type string minOccurs 0 maxOccurs 1}
    per_page        {type string minOccurs 0 maxOccurs 1 default 25}
    folder          {type string minOccurs 0 maxOccurs 1}
} {
    expenses    {type ExpenseListArray}
}
